<!DOCTYPE html>
<html>
<head>
<title>x3d</title>
    <link rel="stylesheet" type="text/css" href="x3dom/x3dom.css">
    <script type="text/javascript" src="x3dom/x3dom-full.js"></script>
    <style type="text/css">
        #x3droot {
            width:100%;
            height:100%;
        }
    </style>
</head>
<body>
    <X3D id='x3droot' profile='Full'  showLog="true" disableDoubleClick="true">
        <Scene>
           <Group>
<!-- DOOR_TRANSFORM ROUTE:  [from CubePathInterpolator.value_changed to set_rotation ] -->
<Transform DEF='DOOR_TRANSFORM' center='0.5 0 0'>
<Shape>
<Box size='1 2.5 0.1'/> 
<Appearance>
<ImageTexture 
  url=' "door35.jpg" "https://savage.nps.edu/Savage/AircraftMiscellaneous/Zeppelin/door35.jpg" '/>
</Appearance>
</Shape> 
<Transform translation='-0.4 0 0.07'>
<Shape>
<Sphere radius='0.1'/> 
<Appearance>
<Material diffuseColor='0.6 0.4 0.3'/>
</Appearance>
</Shape>
</Transform>
</Transform> 
<!-- MyTouchSensor ROUTE:  [from touchTime to CLOCK.set_startTime ] -->
<TouchSensor DEF='MyTouchSensor' description='touch to operate door'/> 
<!-- CLOCK ROUTEs:  [from MyTouchSensor.touchTime to set_startTime ] [from fraction_changed to CubePathInterpolator.set_fraction ] -->
<TimeSensor DEF='CLOCK' cycleInterval='10'/> 
<!-- CubePathInterpolator ROUTEs:  [from CLOCK.fraction_changed to set_fraction ] [from value_changed to DOOR_TRANSFORM.set_rotation ] -->
<OrientationInterpolator DEF='CubePathInterpolator' key='0.0 0.50 1.0' keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 1.57 0.0 1.0 0.0 0.0'/>
</Group> 
<ROUTE fromNode='MyTouchSensor' fromField='touchTime' toNode='CLOCK' toField='set_startTime'/> 
<ROUTE fromNode='CLOCK' fromField='fraction_changed' toNode='CubePathInterpolator' toField='set_fraction'/> 
<ROUTE fromNode='CubePathInterpolator' fromField='value_changed' toNode='DOOR_TRANSFORM' toField='set_rotation'/>
			</Scene>
    </X3D>
</body>
</html>